package com.gzxx.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gzxx.domain.base.BaseVo;
import com.gzxx.domain.bo.SysRoleBO;
import com.gzxx.domain.vo.SysRoleVo;
import com.gzxx.util.ServerResponse;

import java.util.List;

/**
 * @author MAX
 * @date 2020/7/24 9:35 上午
 * 系统角色业务接口
 */
public interface SysRoleService {

    /**
     * 根据系统用户标识获取角色集合
     */
    SysRoleVo getByUserId(Long userId);

    /**
     * 根据查询条件获取角色列表
     */
    IPage<SysRoleVo> getRoles(SysRoleBO sysRoleBO);

    /**
     * 详情
     */
    SysRoleVo getDetail(Long id);

    /**
     * 新增
     */
    boolean add(SysRoleBO sysRoleBO);

    /**
     * 更新
     */
    ServerResponse update(SysRoleBO sysRoleBO);

    /**
     * 变更状态
     */
    ServerResponse changeStatus(SysRoleBO sysRoleBO);

    /**
     * 删除 批量
     */
    ServerResponse delete(List<Long> roleIds);

    /**
     * 查询用户所有菜单ID
     *
     * @param userId
     * @return
     */
    List<Long> queryAllMenuId(Long userId);

    /**
     * 获取所有角色
     */
    List<BaseVo> getAll();

    /**
     * 获取角色关联用户 树形
     */
    List<BaseVo> tree();
}
